Quản lý phần mềm bán vé xe VB
8.389 lượt xem;
- Thoi_diem.vb
- Library /
- PhanMemBanVeXe_Full /
- project /
1 Imports System.Data.SqlClient
2 Public Class Thoi_diem
3 Private bang_thoi_diem As DataTable
4 Private bang_tuyen_xe As DataTable
5 Private lenh As String
6 Private flag As Boolean
7
8 Public Sub Update_thoi_diem()
9 Doc_thoi_diem()
10 Tao_lien_ket()
11 Doc_tuyen()
12 Hide()
13 End Sub
14
15 Private Sub Hide()
16 Form_Main.rad_KhongLap.Hide()
17 Form_Main.rad_LapTuan.Hide()
18 Form_Main.lbl_Lap.Hide()
19 Form_Main.date_NgayKetThuc.Hide()
20 End Sub
21
22 Private Sub Show()
23 Form_Main.rad_KhongLap.Show()
24 Form_Main.rad_LapTuan.Show()
25 End Sub
26
27 Private Sub Doc_tuyen()
28 lenh = "Select IdTuyen, TenTuyen from TuyenXe"
29 bang_tuyen_xe = Doc_bang(lenh)
30 With Form_Main.cbo_GanTuyen
31 .DataSource = bang_tuyen_xe
32 .DisplayMember = "IdTuyen"
33 .ValueMember = "IdTuyen"
34 End With
35 With Form_Main
36 .txt_TenTuyen.DataBindings.Clear()
37 .txt_TenTuyen.DataBindings.Add("Text", bang_tuyen_xe, "TenTuyen")
38 End With
39 End Sub
40
41 #Region "Doc thoi diem voi tao lien ket da xong"
42 Private Sub Doc_thoi_diem()
43 lenh = "Select * from ThoiDiem"
44 bang_thoi_diem = Doc_bang(lenh)
45 Form_Main.luoi_ThoiDiem.DataSource = bang_thoi_diem
46 End Sub
47
48 Private Sub Tao_lien_ket()
49 With Form_Main.cbo_MaThoiDiem
50 .DataSource = bang_thoi_diem
51 .DisplayMember = "IdThoiDiem"
52 .ValueMember = "IdThoiDiem"
53 End With
54 With Form_Main
55 .date_Chay.DataBindings.Clear()
56 .txt_GioChay.DataBindings.Clear()
57
58 .date_Chay.DataBindings.Add("Text", bang_thoi_diem, "Ngay")
59 .txt_GioChay.DataBindings.Add("Text", bang_thoi_diem, "Gio")
60 End With
61 End Sub
62 #End Region
63
64 #Region "Xu ly ho tro button da xong"
65 Private Sub Clear_Control()
66 With Form_Main
67 .date_Chay.Text = ""
68 .date_NgayKetThuc.Text = ""
69 .txt_GioChay.Text = ""
70 .rad_KhongLap.Checked = True
71 .date_Chay.Focus()
72 End With
73 End Sub
74
75 Private Sub LockButton(ByVal dt As Boolean)
76 With Form_Main
77 .btn_ThemThoiDiem.Enabled = Not dt
78 .btn_SuaThoiDiem.Enabled = Not dt
79 .btn_XoaThoiDiem.Enabled = Not dt
80 .btn_LuuThoiDiem.Enabled = dt
81 .btn_HuyThoiDiem.Enabled = dt
82 End With
83 End Sub
84 #End Region
85
86 Public Sub them()
87 flag = True
88 LockButton(True)
89 Form_Main.lbl_Lap.Hide()
90 Form_Main.date_NgayKetThuc.Hide()
91 Show()
92 Clear_Control()
93 Form_Main.cbo_MaThoiDiem.Enabled = False
94 End Sub
95
96 Public Sub Sua()
97 Form_Main.rad_LapTuan.Checked = False
98 Form_Main.rad_KhongLap.Checked = True
99 Show()
100 flag = False
101 LockButton(True)
102 Form_Main.cbo_MaThoiDiem.Enabled = False
103 End Sub
104
105 Public Sub Luu()
106 Tao_ket_noi()
107 If connect.State = ConnectionState.Open Then
108 connect.Close()
109 End If
110 With Form_Main
111 'Neu nhu trang thai dang la them
112 If flag Then
113 If TestInfo() Then
114
115 'Kiem tra ngay gio them vao phai la chua co trong CSDL
116 Dim sqlCM As New SqlCommand("select Ngay, Gio from ThoiDiem", connect)
117 Dim sqlDR As SqlDataReader
118 connect.Open()
119 sqlDR = sqlCM.ExecuteReader
120 While sqlDR.Read() = True
121 If FormatDateTime(CDate(sqlDR.GetValue(0)), DateFormat.ShortDate) = .date_Chay.Text AndAlso sqlDR.GetValue(1).ToString = .txt_GioChay.Text Then
122 MessageBox.Show("Ngày giờ này đã tồn tại, vui lòng kiểm tra lại thông tin nhập!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
123 Exit Sub
124 End If
125 End While
126 connect.Close()
127
128 If .rad_KhongLap.Checked = True Then
129 lenh = "Insert into ThoiDiem(Ngay, Gio) "
130 lenh &= "Values ('" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
131 Dim bo_lenh As New SqlCommand(lenh, connect)
132 Try
133 connect.Open()
134 bo_lenh.ExecuteNonQuery()
135 connect.Close()
136 Update_thoi_diem()
137 LockButton(False)
138 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
139 Catch ex As Exception
140 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
141 connect.Close()
142 End Try
143 ElseIf .rad_LapTuan.Checked = True Then
144 Dim i As Long = layKhoangCach()
145 If i < 0 Then
146 MessageBox.Show("Ngày kết thúc không được nhỏ hơn ngày bắt đầu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)
147 Exit Sub
148 End If
149 If i = 0 Then 'Ngay them trung ngay hien tai
150 lenh = "Insert into ThoiDiem(Ngay, Gio) "
151 lenh &= "Values ('" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
152 Dim bo_lenh As New SqlCommand(lenh, connect)
153 Try
154 connect.Open()
155 bo_lenh.ExecuteNonQuery()
156 connect.Close()
157 Update_thoi_diem()
158 LockButton(False)
159 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
160 Catch ex As Exception
161 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
162 connect.Close()
163 End Try
164 ElseIf i > 0 Then
165 Dim ngay = 0
166 Dim d = CDate(.date_Chay.Text)
167 While (ngay <= i)
168 lenh = "Insert into ThoiDiem(Ngay, Gio) "
169 lenh &= "Values ('" + FormatDateTime(d, DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
170 Dim bo_lenh As New SqlCommand(lenh, connect)
171 Try
172 connect.Open()
173 bo_lenh.ExecuteNonQuery()
174 connect.Close()
175 Catch ex As Exception
176 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
177 connect.Close()
178 Exit Sub
179 End Try
180 ngay += 7
181 d = DateAdd(DateInterval.Day, ngay, d)
182 End While
183 Update_thoi_diem()
184 LockButton(False)
185 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
186 End If
187 End If
188 End If
189 Else 'trang thai sua
190 If TestInfo() Then
191 lenh = "Update ThoiDiem set Ngay = '" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', Gio = '" + .txt_GioChay.Text + "' where IdThoiDiem = '" + .cbo_MaThoiDiem.Text + "'"
192 Dim sqlqr As New SqlCommand(lenh, connect)
193 Try
194 connect.Open()
195 sqlqr.ExecuteNonQuery()
196 connect.Close()
197 Update_thoi_diem()
198 LockButton(False)
199 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
200 Catch ex As Exception
201 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
202 connect.Close()
203 End Try
204 End If
205 End If
206 End With
207 End Sub
208
209 Public Sub Huy()
210 LockButton(False)
211 Update_thoi_diem()
212 Form_Main.cbo_MaThoiDiem.Enabled = True
213 Hide()
214 End Sub
215
216 Public Sub Xoa()
217 Dim qs = MessageBox.Show("Bạn chắc chắn muốn xóa tất cả thông tin về:" & vbNewLine & _
218 " - Ma thoi diem: " & Form_Main.cbo_MaThoiDiem.Text & vbNewLine & _
219 " - Ngay: " & Form_Main.date_Chay.Text & vbNewLine & _
220 " - Giờ: " & Form_Main.txt_GioChay.Text, "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information)
221 If qs = DialogResult.Yes Then
222 Dim lenh As String = "Delete from ThoiDiem where IdThoiDiem = '" & Form_Main.cbo_MaThoiDiem.Text & "'"
223 Dim query1 As New SqlCommand(lenh, connect)
224 Try
225 connect.Open()
226 query1.ExecuteNonQuery()
227 connect.Close()
228 Update_thoi_diem()
229 MsgBox("Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
230 Catch ex As Exception
231 MsgBox("Thời điểm này đã được gán cho tuyến xe, bạn phải xóa thông tin tuyến xe đó trước!", vbExclamation, "Thông báo")
232 End Try
233 Else
234 MsgBox("Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
235 End If
236 End Sub
237
238 Private Function layKhoangCach() As Long
239 Dim i As Long
240 i = DateAndTime.DateDiff(DateInterval.Day, CDate(Form_Main.date_Chay.Text), CDate(Form_Main.date_NgayKetThuc.Text), FirstDayOfWeek.System, FirstWeekOfYear.System)
241 Return i
242 End Function
243
244 Private Function TestInfo() As Boolean
245 TestInfo = True
246 With Form_Main
247 If .rad_KhongLap.Checked = True Then
248 If Trim(.date_Chay.Text) = "" OrElse Trim(.txt_GioChay.Text) = "" Then
249 TestInfo = False
250 MsgBox("Bạn phải nhập đầy đủ thông tin!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
251 Exit Function
252 End If
253 ElseIf .rad_LapTuan.Checked = True Then
254 If Trim(.date_Chay.Text) = "" OrElse Trim(.txt_GioChay.Text) = "" OrElse .date_NgayKetThuc.Text = "" Then
255 TestInfo = False
256 MsgBox("Bạn phải nhập đầy đủ thông tin!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
257 Exit Function
258 End If
259
260 If .date_Chay.Text <> "" AndAlso .date_NgayKetThuc.Text <> "" Then
261 If layKhoangCach() > 365 Then
262 TestInfo = False
263 MessageBox.Show("Bạn chỉ được lặp tuần trong phạm vi là 1 năm hay 48 tuần", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
264 Exit Function
265 End If
266 End If
267 End If
268
269 If CDate(Form_Main.date_Chay.Text) < Today.Date Then
270 TestInfo = False
271 MessageBox.Show("Ngay ban them khong duoc nho hon ngay hien tai", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
272 Exit Function
273 End If
274 End With
275 End Function
276
277 Public Sub Gan_tuyen()
278 With Form_Main
279 If .cbo_MaThoiDiem.Text = "" Then
280 MessageBox.Show("Bạn chưa chọn thời điểm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
281 Exit Sub
282 End If
283 'Neu ngay gio do da gan cho tuyen do roi thi thong bao loi
284 Dim sqlCM As New SqlCommand("select * from ChiTietTuyen", connect)
285 Dim sqlDR As SqlDataReader
286 connect.Open()
287 sqlDR = sqlCM.ExecuteReader
288 While sqlDR.Read() = True
289 If sqlDR.GetValue(0).ToString = .cbo_GanTuyen.Text AndAlso sqlDR.GetValue(1).ToString = .cbo_MaThoiDiem.Text Then
290 MessageBox.Show("Thời điểm này đã được gán cho tuyến " & .cbo_GanTuyen.Text & " rồi!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
291 connect.Close()
292 Exit Sub
293 End If
294 End While
295 connect.Close()
296
297 'Sau khi kiem tra logic thi bat dau gan tuyen
298 lenh = "Insert into ChiTietTuyen values('" & .cbo_GanTuyen.Text & "', '" & .cbo_MaThoiDiem.Text & "')"
299 Dim bo_lenh As New SqlCommand(lenh, connect)
300 Try
301 connect.Open()
302 bo_lenh.ExecuteNonQuery()
303 connect.Close()
304 MsgBox("Ngày " & .date_Chay.Text & " Giờ: " & .txt_GioChay.Text & " đã được gán cho tuyến " & .cbo_GanTuyen.Text, vbInformation, "Thông báo")
305 Update_thoi_diem()
306 Catch ex As Exception
307 MsgBox("Gán tuyến không thành công", vbExclamation, "Thông báo")
308 End Try
309 End With
310 End Sub
311 End Class
2 Public Class Thoi_diem
3 Private bang_thoi_diem As DataTable
4 Private bang_tuyen_xe As DataTable
5 Private lenh As String
6 Private flag As Boolean
7
8 Public Sub Update_thoi_diem()
9 Doc_thoi_diem()
10 Tao_lien_ket()
11 Doc_tuyen()
12 Hide()
13 End Sub
14
15 Private Sub Hide()
16 Form_Main.rad_KhongLap.Hide()
17 Form_Main.rad_LapTuan.Hide()
18 Form_Main.lbl_Lap.Hide()
19 Form_Main.date_NgayKetThuc.Hide()
20 End Sub
21
22 Private Sub Show()
23 Form_Main.rad_KhongLap.Show()
24 Form_Main.rad_LapTuan.Show()
25 End Sub
26
27 Private Sub Doc_tuyen()
28 lenh = "Select IdTuyen, TenTuyen from TuyenXe"
29 bang_tuyen_xe = Doc_bang(lenh)
30 With Form_Main.cbo_GanTuyen
31 .DataSource = bang_tuyen_xe
32 .DisplayMember = "IdTuyen"
33 .ValueMember = "IdTuyen"
34 End With
35 With Form_Main
36 .txt_TenTuyen.DataBindings.Clear()
37 .txt_TenTuyen.DataBindings.Add("Text", bang_tuyen_xe, "TenTuyen")
38 End With
39 End Sub
40
41 #Region "Doc thoi diem voi tao lien ket da xong"
42 Private Sub Doc_thoi_diem()
43 lenh = "Select * from ThoiDiem"
44 bang_thoi_diem = Doc_bang(lenh)
45 Form_Main.luoi_ThoiDiem.DataSource = bang_thoi_diem
46 End Sub
47
48 Private Sub Tao_lien_ket()
49 With Form_Main.cbo_MaThoiDiem
50 .DataSource = bang_thoi_diem
51 .DisplayMember = "IdThoiDiem"
52 .ValueMember = "IdThoiDiem"
53 End With
54 With Form_Main
55 .date_Chay.DataBindings.Clear()
56 .txt_GioChay.DataBindings.Clear()
57
58 .date_Chay.DataBindings.Add("Text", bang_thoi_diem, "Ngay")
59 .txt_GioChay.DataBindings.Add("Text", bang_thoi_diem, "Gio")
60 End With
61 End Sub
62 #End Region
63
64 #Region "Xu ly ho tro button da xong"
65 Private Sub Clear_Control()
66 With Form_Main
67 .date_Chay.Text = ""
68 .date_NgayKetThuc.Text = ""
69 .txt_GioChay.Text = ""
70 .rad_KhongLap.Checked = True
71 .date_Chay.Focus()
72 End With
73 End Sub
74
75 Private Sub LockButton(ByVal dt As Boolean)
76 With Form_Main
77 .btn_ThemThoiDiem.Enabled = Not dt
78 .btn_SuaThoiDiem.Enabled = Not dt
79 .btn_XoaThoiDiem.Enabled = Not dt
80 .btn_LuuThoiDiem.Enabled = dt
81 .btn_HuyThoiDiem.Enabled = dt
82 End With
83 End Sub
84 #End Region
85
86 Public Sub them()
87 flag = True
88 LockButton(True)
89 Form_Main.lbl_Lap.Hide()
90 Form_Main.date_NgayKetThuc.Hide()
91 Show()
92 Clear_Control()
93 Form_Main.cbo_MaThoiDiem.Enabled = False
94 End Sub
95
96 Public Sub Sua()
97 Form_Main.rad_LapTuan.Checked = False
98 Form_Main.rad_KhongLap.Checked = True
99 Show()
100 flag = False
101 LockButton(True)
102 Form_Main.cbo_MaThoiDiem.Enabled = False
103 End Sub
104
105 Public Sub Luu()
106 Tao_ket_noi()
107 If connect.State = ConnectionState.Open Then
108 connect.Close()
109 End If
110 With Form_Main
111 'Neu nhu trang thai dang la them
112 If flag Then
113 If TestInfo() Then
114
115 'Kiem tra ngay gio them vao phai la chua co trong CSDL
116 Dim sqlCM As New SqlCommand("select Ngay, Gio from ThoiDiem", connect)
117 Dim sqlDR As SqlDataReader
118 connect.Open()
119 sqlDR = sqlCM.ExecuteReader
120 While sqlDR.Read() = True
121 If FormatDateTime(CDate(sqlDR.GetValue(0)), DateFormat.ShortDate) = .date_Chay.Text AndAlso sqlDR.GetValue(1).ToString = .txt_GioChay.Text Then
122 MessageBox.Show("Ngày giờ này đã tồn tại, vui lòng kiểm tra lại thông tin nhập!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
123 Exit Sub
124 End If
125 End While
126 connect.Close()
127
128 If .rad_KhongLap.Checked = True Then
129 lenh = "Insert into ThoiDiem(Ngay, Gio) "
130 lenh &= "Values ('" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
131 Dim bo_lenh As New SqlCommand(lenh, connect)
132 Try
133 connect.Open()
134 bo_lenh.ExecuteNonQuery()
135 connect.Close()
136 Update_thoi_diem()
137 LockButton(False)
138 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
139 Catch ex As Exception
140 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
141 connect.Close()
142 End Try
143 ElseIf .rad_LapTuan.Checked = True Then
144 Dim i As Long = layKhoangCach()
145 If i < 0 Then
146 MessageBox.Show("Ngày kết thúc không được nhỏ hơn ngày bắt đầu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error)
147 Exit Sub
148 End If
149 If i = 0 Then 'Ngay them trung ngay hien tai
150 lenh = "Insert into ThoiDiem(Ngay, Gio) "
151 lenh &= "Values ('" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
152 Dim bo_lenh As New SqlCommand(lenh, connect)
153 Try
154 connect.Open()
155 bo_lenh.ExecuteNonQuery()
156 connect.Close()
157 Update_thoi_diem()
158 LockButton(False)
159 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
160 Catch ex As Exception
161 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
162 connect.Close()
163 End Try
164 ElseIf i > 0 Then
165 Dim ngay = 0
166 Dim d = CDate(.date_Chay.Text)
167 While (ngay <= i)
168 lenh = "Insert into ThoiDiem(Ngay, Gio) "
169 lenh &= "Values ('" + FormatDateTime(d, DateFormat.ShortDate) + "', '" + .txt_GioChay.Text + "')"
170 Dim bo_lenh As New SqlCommand(lenh, connect)
171 Try
172 connect.Open()
173 bo_lenh.ExecuteNonQuery()
174 connect.Close()
175 Catch ex As Exception
176 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
177 connect.Close()
178 Exit Sub
179 End Try
180 ngay += 7
181 d = DateAdd(DateInterval.Day, ngay, d)
182 End While
183 Update_thoi_diem()
184 LockButton(False)
185 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
186 End If
187 End If
188 End If
189 Else 'trang thai sua
190 If TestInfo() Then
191 lenh = "Update ThoiDiem set Ngay = '" + FormatDateTime(CDate(.date_Chay.Text), DateFormat.ShortDate) + "', Gio = '" + .txt_GioChay.Text + "' where IdThoiDiem = '" + .cbo_MaThoiDiem.Text + "'"
192 Dim sqlqr As New SqlCommand(lenh, connect)
193 Try
194 connect.Open()
195 sqlqr.ExecuteNonQuery()
196 connect.Close()
197 Update_thoi_diem()
198 LockButton(False)
199 MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
200 Catch ex As Exception
201 MessageBox.Show("Không cập nhật được dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error)
202 connect.Close()
203 End Try
204 End If
205 End If
206 End With
207 End Sub
208
209 Public Sub Huy()
210 LockButton(False)
211 Update_thoi_diem()
212 Form_Main.cbo_MaThoiDiem.Enabled = True
213 Hide()
214 End Sub
215
216 Public Sub Xoa()
217 Dim qs = MessageBox.Show("Bạn chắc chắn muốn xóa tất cả thông tin về:" & vbNewLine & _
218 " - Ma thoi diem: " & Form_Main.cbo_MaThoiDiem.Text & vbNewLine & _
219 " - Ngay: " & Form_Main.date_Chay.Text & vbNewLine & _
220 " - Giờ: " & Form_Main.txt_GioChay.Text, "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information)
221 If qs = DialogResult.Yes Then
222 Dim lenh As String = "Delete from ThoiDiem where IdThoiDiem = '" & Form_Main.cbo_MaThoiDiem.Text & "'"
223 Dim query1 As New SqlCommand(lenh, connect)
224 Try
225 connect.Open()
226 query1.ExecuteNonQuery()
227 connect.Close()
228 Update_thoi_diem()
229 MsgBox("Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
230 Catch ex As Exception
231 MsgBox("Thời điểm này đã được gán cho tuyến xe, bạn phải xóa thông tin tuyến xe đó trước!", vbExclamation, "Thông báo")
232 End Try
233 Else
234 MsgBox("Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
235 End If
236 End Sub
237
238 Private Function layKhoangCach() As Long
239 Dim i As Long
240 i = DateAndTime.DateDiff(DateInterval.Day, CDate(Form_Main.date_Chay.Text), CDate(Form_Main.date_NgayKetThuc.Text), FirstDayOfWeek.System, FirstWeekOfYear.System)
241 Return i
242 End Function
243
244 Private Function TestInfo() As Boolean
245 TestInfo = True
246 With Form_Main
247 If .rad_KhongLap.Checked = True Then
248 If Trim(.date_Chay.Text) = "" OrElse Trim(.txt_GioChay.Text) = "" Then
249 TestInfo = False
250 MsgBox("Bạn phải nhập đầy đủ thông tin!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
251 Exit Function
252 End If
253 ElseIf .rad_LapTuan.Checked = True Then
254 If Trim(.date_Chay.Text) = "" OrElse Trim(.txt_GioChay.Text) = "" OrElse .date_NgayKetThuc.Text = "" Then
255 TestInfo = False
256 MsgBox("Bạn phải nhập đầy đủ thông tin!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
257 Exit Function
258 End If
259
260 If .date_Chay.Text <> "" AndAlso .date_NgayKetThuc.Text <> "" Then
261 If layKhoangCach() > 365 Then
262 TestInfo = False
263 MessageBox.Show("Bạn chỉ được lặp tuần trong phạm vi là 1 năm hay 48 tuần", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
264 Exit Function
265 End If
266 End If
267 End If
268
269 If CDate(Form_Main.date_Chay.Text) < Today.Date Then
270 TestInfo = False
271 MessageBox.Show("Ngay ban them khong duoc nho hon ngay hien tai", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
272 Exit Function
273 End If
274 End With
275 End Function
276
277 Public Sub Gan_tuyen()
278 With Form_Main
279 If .cbo_MaThoiDiem.Text = "" Then
280 MessageBox.Show("Bạn chưa chọn thời điểm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
281 Exit Sub
282 End If
283 'Neu ngay gio do da gan cho tuyen do roi thi thong bao loi
284 Dim sqlCM As New SqlCommand("select * from ChiTietTuyen", connect)
285 Dim sqlDR As SqlDataReader
286 connect.Open()
287 sqlDR = sqlCM.ExecuteReader
288 While sqlDR.Read() = True
289 If sqlDR.GetValue(0).ToString = .cbo_GanTuyen.Text AndAlso sqlDR.GetValue(1).ToString = .cbo_MaThoiDiem.Text Then
290 MessageBox.Show("Thời điểm này đã được gán cho tuyến " & .cbo_GanTuyen.Text & " rồi!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning)
291 connect.Close()
292 Exit Sub
293 End If
294 End While
295 connect.Close()
296
297 'Sau khi kiem tra logic thi bat dau gan tuyen
298 lenh = "Insert into ChiTietTuyen values('" & .cbo_GanTuyen.Text & "', '" & .cbo_MaThoiDiem.Text & "')"
299 Dim bo_lenh As New SqlCommand(lenh, connect)
300 Try
301 connect.Open()
302 bo_lenh.ExecuteNonQuery()
303 connect.Close()
304 MsgBox("Ngày " & .date_Chay.Text & " Giờ: " & .txt_GioChay.Text & " đã được gán cho tuyến " & .cbo_GanTuyen.Text, vbInformation, "Thông báo")
305 Update_thoi_diem()
306 Catch ex As Exception
307 MsgBox("Gán tuyến không thành công", vbExclamation, "Thông báo")
308 End Try
309 End With
310 End Sub
311 End Class